9x9 705 unsolvable.txt
Order 3: digits 9; houses 27, cells 81.
Grid.grid1: initial copying
pending={a1, a6, a8, b4, b9, c3, c5, c7, d1, d9, e3, e5, e7, f2, f8, g2, g5, h1, h6, h8, i3, i4}
deduce.grid1: naked-singles
deduce.grid1: hidden-singles
deduce.grid1: naked-pairs
two's heap=a5 {3|5}, c8 {2|9}, e1 {2|7}.
grid1
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
|
|
|
|
| 4
|
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid1 → grid2: a5 guess 3 ∈ {3|5}
pending={a5}
deduce.grid2: naked-singles
deduce.grid2: hidden-singles
deduce.grid2: naked-pairs
two's heap=a2 {1|2}, c8 {2|9}, e1 {2|7}.
grid2
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
|
|
|
| 3
| 4
|
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid2 → grid3: a2 guess 1 ∈ {1|2}
pending={a2}
deduce.grid3: naked-singles
deduce.grid3: hidden-singles
deduce.grid3: naked-pairs
two's heap=c1 {2|3}, e1 {2|7}, a4 {5|6}, a3 {6|7}, b2 {4|8}, a7 {2|7}, c8 {2|9}, b1 {6|7}.
Naked-pair {6|7} in cells {a3, b1} contained within {box1}, updating cells {b2, b3, c1, c2}:
grid3
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 1
|
|
| 3
| 4
|
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid3 → grid4: a3 guess 6 ∈ {6|7}
pending={a3}
deduce.grid4: naked-singles
- a4 is 5 by naked-single.
pending={a4}
- b1 is 7 by naked-single.
pending={b1}
- e1 is 2 by naked-single.
pending={e1}
- c1 is 3 by naked-single.
pending={c1}
deduce.grid4: hidden-singles
deduce.grid4.rowb. b6 is 6 by hidden-single.
deduce.grid4.rowb. b8 is 5 by hidden-single.
pending={b6, b8}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4.rowb. b7 is 1 by hidden-single.
pending={b7}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4.rowb. b5 is 9 by hidden-single.
pending={b5}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4.rowc. c8 is 9 by hidden-single.
pending={c8}
deduce.grid4: naked-singles
deduce.grid4: hidden-singles
deduce.grid4.rowd. d3 is 1 by hidden-single.
pending={d3}
deduce.grid4: naked-singles
- f1 is 5 by naked-single.
pending={f1}
- d2 is 4 by naked-single.
pending={d2}
- b2 is 8 by naked-single.
pending={b2}
- b3 is 4 by naked-single.
pending={b3}
- c2 is 2 by naked-single.
pending={c2}
- c9 is 4 by naked-single.
pending={c9}
- e2 is 9 by naked-single.
pending={e2}
- f3 is 7 by naked-single.
pending={f3}
- g1 is 1 by naked-single.
pending={g1}
- h2 is 3 by naked-single.
pending={h2}
- i1 is 6 by naked-single.
pending={i1}
- i2 is 5 by naked-single.
pending={i2}
- i8 is 7 by naked-single.
pending={i8}
- e8 is 6 by naked-single.
pending={e8}
- i9 is 8 by naked-single.
pending={i9}
- e9 is 7 by naked-single.
pending={e9}
- a9 is 2 by naked-single.
pending={a9}
- a7 is 7 by naked-single.
pending={a7}
- e6 is 8 by naked-single.
pending={e6}
- c6 is 1 by naked-single.
pending={c6}
- c4 is 8 by naked-single.
pending={c4}
- e4 is 4 by naked-single.
pending={e4}
- f4 is 9 by naked-single.
pending={f4}
- f5 is 2 by naked-single.
pending={f5}
- d5 is 5 by naked-single.
pending={d5}
- f6 is 3 by naked-single.
pending={f6}
- d6 is 7 by naked-single.
pending={d6}
- d4 is 6 by naked-single.
pending={d4}
- f7 is 8 by naked-single.
pending={f7}
- f9 is 1 by naked-single.
pending={f9}
grid4 didn't work: naked-singles ran out of candidates.
…backtrack.grid3 again
backtrack.grid3 → grid5: a3 guess 7 ∈ {6|7}
pending={a3}
deduce.grid5: naked-singles
- a7 is 2 by naked-single.
pending={a7}
- a9 is 5 by naked-single.
pending={a9}
- a4 is 6 by naked-single.
pending={a4}
- b1 is 6 by naked-single.
pending={b1}
- c8 is 9 by naked-single.
pending={c8}
- b8 is 7 by naked-single.
pending={b8}
deduce.grid5: hidden-singles
deduce.grid5.rowb. b5 is 5 by hidden-single.
pending={b5}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowb. b6 is 9 by hidden-single.
pending={b6}
deduce.grid5: naked-singles
deduce.grid5: hidden-singles
deduce.grid5.rowb. b7 is 1 by hidden-single.
pending={b7}
deduce.grid5: naked-singles
- c9 is 4 by naked-single.
pending={c9}
deduce.grid5: hidden-singles
deduce.grid5.rowd. d3 is 1 by hidden-single.
pending={d3}
deduce.grid5: naked-singles
- f3 is 9 by naked-single.
pending={f3}
- g3 is 8 by naked-single.
pending={g3}
- b3 is 4 by naked-single.
pending={b3}
- b2 is 8 by naked-single.
pending={b2}
- g9 is 2 by naked-single.
pending={g9}
- g6 is 1 by naked-single.
pending={g6}
- c6 is 8 by naked-single.
pending={c6}
- c4 is 1 by naked-single.
pending={c4}
- h3 is 6 by naked-single.
pending={h3}
- i6 is 7 by naked-single.
pending={i6}
deduce.grid5: hidden-singles
deduce.grid5.rowe. e4 is 9 by hidden-single.
pending={e4}
deduce.grid5: naked-singles
- g4 is 4 by naked-single.
pending={g4}
- h4 is 8 by naked-single.
pending={h4}
- h9 is 7 by naked-single.
pending={h9}
- i5 is 9 by naked-single.
pending={i5}
- h5 is 2 by naked-single.
pending={h5}
- d5 is 4 by naked-single.
pending={d5}
- f5 is 8 by naked-single.
pending={f5}
- f9 is 1 by naked-single.
pending={f9}
- i2 is 5 by naked-single.
pending={i2}
- d2 is 2 by naked-single.
pending={d2}
- c2 is 3 by naked-single.
pending={c2}
- c1 is 2 by naked-single.
pending={c1}
- e1 is 7 by naked-single.
pending={e1}
- e2 is 4 by naked-single.
pending={e2}
- f1 is 5 by naked-single.
pending={f1}
- f4 is 7 by naked-single.
pending={f4}
- d4 is 5 by naked-single.
pending={d4}
- f7 is 3 by naked-single.
pending={f7}
- d7 is 7 by naked-single.
pending={d7}
- d8 is 6 by naked-single.
pending={d8}
- d6 is 3 by naked-single.
pending={d6}
- e8 is 2 by naked-single.
pending={e8}
- e6 is 6 by naked-single.
pending={e6}
- e9 is 8 by naked-single.
pending={e9}
- f6 is 2 by naked-single.
pending={f6}
- g1 is 3 by naked-single.
pending={g1}
- g7 is 9 by naked-single.
pending={g7}
- g8 is 5 by naked-single.
pending={g8}
- h2 is 9 by naked-single.
pending={h2}
grid5 didn't work: naked-singles ran out of candidates.
…backtrack.grid3 again
grid3 didn't work: exhaustive search revealed no solution.
…backtrack.grid2 again
backtrack.grid2 → grid6: a2 guess 2 ∈ {1|2}
pending={a2}
deduce.grid6: naked-singles
deduce.grid6: hidden-singles
deduce.grid6: naked-pairs
two's heap=c1 {1|3}, a7 {1|7}, c8 {2|9}, e1 {2|7}, e2 {4|9}.
grid6
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
|
|
| 3
| 4
|
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid6 → grid7: a7 guess 1 ∈ {1|7}
pending={a7}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7.col9. f9 is 1 by hidden-single.
pending={f9}
deduce.grid7: naked-singles
deduce.grid7: hidden-singles
deduce.grid7: naked-pairs
two's heap=c1 {1|3}, a4 {5|6}, c9 {2|4}, a3 {6|7}, c8 {2|9}, a9 {5|7}, e1 {2|7}, e2 {4|9}, f3 {7|9}.
grid7
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
|
|
| 3
| 4
| 1
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
| 1
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid7 → grid8: a3 guess 6 ∈ {6|7}
pending={a3}
deduce.grid8: naked-singles
- a4 is 5 by naked-single.
pending={a4}
- a9 is 7 by naked-single.
pending={a9}
deduce.grid8: hidden-singles
deduce.grid8.rowb. b6 is 6 by hidden-single.
deduce.grid8.rowb. b8 is 5 by hidden-single.
pending={b6, b8}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8.rowh. h9 is 6 by hidden-single.
pending={h9}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8.rowi. i1 is 6 by hidden-single.
pending={i1}
deduce.grid8: naked-singles
deduce.grid8: hidden-singles
deduce.grid8: naked-pairs
two's heap=c1 {1|3}, b1 {1|7}, c9 {2|4}, e9 {2|8}, c8 {2|9}, b7 {4|9}, e1 {2|7}, b5 {8|9}, e2 {4|9}, f3 {7|9}, h3 {8|9}, i8 {7|9}.
grid8
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
| 6
| 5
| 3
| 4
| 1
| 8
| 7
|
| b
|
|
|
| 2
|
| 6
|
| 5
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
| 1
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
| 6
|
| i
| 6
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid8 → grid9: b1 guess 1 ∈ {1|7}
pending={b1}
deduce.grid9: naked-singles
- c1 is 3 by naked-single.
pending={c1}
- g1 is 5 by naked-single.
pending={g1}
deduce.grid9: hidden-singles
deduce.grid9.rowb. b3 is 7 by hidden-single.
pending={b3}
deduce.grid9: naked-singles
- f3 is 9 by naked-single.
pending={f3}
- e2 is 4 by naked-single.
pending={e2}
- b2 is 8 by naked-single.
pending={b2}
- b5 is 9 by naked-single.
pending={b5}
- b7 is 4 by naked-single.
pending={b7}
grid9 didn't work: naked-singles ran out of candidates.
…backtrack.grid8 again
backtrack.grid8 → grid10: b1 guess 7 ∈ {1|7}
pending={b1}
deduce.grid10: naked-singles
- e1 is 2 by naked-single.
pending={e1}
- e9 is 8 by naked-single.
pending={e9}
- f1 is 5 by naked-single.
pending={f1}
deduce.grid10: hidden-singles
deduce.grid10.rowd. d5 is 5 by hidden-single.
pending={d5}
deduce.grid10: naked-singles
deduce.grid10: hidden-singles
deduce.grid10.rowg. g9 is 5 by hidden-single.
pending={g9}
deduce.grid10: naked-singles
- i9 is 4 by naked-single.
pending={i9}
- c9 is 2 by naked-single.
pending={c9}
- c8 is 9 by naked-single.
pending={c8}
- b7 is 4 by naked-single.
pending={b7}
- i8 is 7 by naked-single.
pending={i8}
- e8 is 6 by naked-single.
pending={e8}
deduce.grid10: hidden-singles
deduce.grid10.rowb. b5 is 9 by hidden-single.
pending={b5}
deduce.grid10: naked-singles
- i5 is 8 by naked-single.
pending={i5}
- f5 is 2 by naked-single.
pending={f5}
grid10 didn't work: naked-singles ran out of candidates.
…backtrack.grid8 again
grid8 didn't work: exhaustive search revealed no solution.
…backtrack.grid7 again
backtrack.grid7 → grid11: a3 guess 7 ∈ {6|7}
pending={a3}
deduce.grid11: naked-singles
- a9 is 5 by naked-single.
pending={a9}
- a4 is 6 by naked-single.
pending={a4}
- f3 is 9 by naked-single.
pending={f3}
- e2 is 4 by naked-single.
pending={e2}
- d3 is 1 by naked-single.
pending={d3}
- d2 is 5 by naked-single.
pending={d2}
- g3 is 8 by naked-single.
pending={g3}
- h3 is 6 by naked-single.
pending={h3}
- b3 is 4 by naked-single.
pending={b3}
deduce.grid11: hidden-singles
deduce.grid11.rowb. b1 is 6 by hidden-single.
deduce.grid11.rowb. b5 is 5 by hidden-single.
pending={b1, b5}
deduce.grid11: naked-singles
deduce.grid11: hidden-singles
deduce.grid11.rowc. c9 is 4 by hidden-single.
pending={c9}
deduce.grid11: naked-singles
- g9 is 2 by naked-single.
pending={g9}
deduce.grid11: hidden-singles
deduce.grid11.rowc. c8 is 2 by hidden-single.
pending={c8}
deduce.grid11: naked-singles
deduce.grid11: hidden-singles
deduce.grid11.rowf. f4 is 5 by hidden-single.
pending={f4}
deduce.grid11: naked-singles
deduce.grid11: hidden-singles
deduce.grid11.rowh. h5 is 2 by hidden-single.
pending={h5}
deduce.grid11: naked-singles
- d5 is 4 by naked-single.
pending={d5}
- d4 is 7 by naked-single.
pending={d4}
- f5 is 8 by naked-single.
pending={f5}
- e4 is 9 by naked-single.
pending={e4}
- h4 is 8 by naked-single.
pending={h4}
- c4 is 1 by naked-single.
pending={c4}
- c1 is 3 by naked-single.
pending={c1}
- c2 is 8 by naked-single.
pending={c2}
- b2 is 1 by naked-single.
pending={b2}
- c6 is 9 by naked-single.
pending={c6}
- b6 is 8 by naked-single.
pending={b6}
- g4 is 4 by naked-single.
pending={g4}
- g6 is 1 by naked-single.
pending={g6}
- g1 is 5 by naked-single.
pending={g1}
- h9 is 7 by naked-single.
pending={h9}
- i1 is 1 by naked-single.
pending={i1}
- i2 is 9 by naked-single.
pending={i2}
- h2 is 3 by naked-single.
pending={h2}
- h7 is 9 by naked-single.
pending={h7}
- b7 is 7 by naked-single.
pending={b7}
- b8 is 9 by naked-single.
pending={b8}
- g7 is 3 by naked-single.
pending={g7}
- d7 is 2 by naked-single.
pending={d7}
grid11 didn't work: naked-singles ran out of candidates.
…backtrack.grid7 again
grid7 didn't work: exhaustive search revealed no solution.
…backtrack.grid6 again
backtrack.grid6 → grid12: a7 guess 7 ∈ {1|7}
pending={a7}
deduce.grid12: naked-singles
deduce.grid12: hidden-singles
deduce.grid12: naked-pairs
two's heap=c1 {1|3}, a9 {1|5}, e1 {2|7}, a3 {1|6}, c8 {2|9}, b8 {5|9}, e2 {4|9}.
grid12
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
|
|
| 3
| 4
| 7
| 8
|
|
| b
|
|
|
| 2
|
|
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
|
|
| 5
|
| 1
|
|
| i
|
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid12 → grid13: a3 guess 1 ∈ {1|6}
pending={a3}
deduce.grid13: naked-singles
- a9 is 5 by naked-single.
pending={a9}
- a4 is 6 by naked-single.
pending={a4}
- b8 is 9 by naked-single.
pending={b8}
- c1 is 3 by naked-single.
pending={c1}
- c8 is 2 by naked-single.
pending={c8}
deduce.grid13: hidden-singles
deduce.grid13.rowb. b5 is 5 by hidden-single.
pending={b5}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.col2. h2 is 3 by hidden-single.
pending={h2}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13: naked-pairs
two's heap=b7 {1|4}, d5 {2|4}, c9 {1|4}, e1 {2|7}, e8 {6|7}, g1 {1|5}, g8 {3|5}, b2 {4|8}, b1 {6|7}, e2 {4|9}, c2 {4|8}, f3 {7|9}, b6 {1|8}, g3 {8|9}, d3 {4|7}.
Naked-pair {4|8} in cells {b2, c2} contained within {col2, box1}, updating cells {b1, b3, d2, e2, i2}:
- b3: {4|6|7|8} → {6|7}.
- d2: {1|4|5} → {1|5}.
- e2: {4|9} → {9}. Solved.
- i2: {1|5|8|9} → {1|5|9}.
pending={e2}
deduce.grid13: naked-singles
- f3 is 7 by naked-single.
pending={f3}
- b3 is 6 by naked-single.
pending={b3}
- b1 is 7 by naked-single.
pending={b1}
- d3 is 4 by naked-single.
pending={d3}
- d5 is 2 by naked-single.
pending={d5}
- e1 is 2 by naked-single.
pending={e1}
deduce.grid13: hidden-singles
deduce.grid13.rowe. e4 is 4 by hidden-single.
pending={e4}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.rowh. h9 is 6 by hidden-single.
pending={h9}
deduce.grid13: naked-singles
deduce.grid13: hidden-singles
deduce.grid13.rowh. h4 is 7 by hidden-single.
deduce.grid13.rowh. h7 is 2 by hidden-single.
pending={h4, h7}
deduce.grid13: naked-singles
- d4 is 5 by naked-single.
pending={d4}
- d2 is 1 by naked-single.
pending={d2}
- d7 is 3 by naked-single.
pending={d7}
- f1 is 5 by naked-single.
pending={f1}
- g1 is 1 by naked-single.
pending={g1}
- i1 is 6 by naked-single.
pending={i1}
- i2 is 5 by naked-single.
pending={i2}
- i8 is 7 by naked-single.
pending={i8}
- d8 is 6 by naked-single.
pending={d8}
- d6 is 7 by naked-single.
pending={d6}
grid13 didn't work: naked-singles ran out of candidates.
…backtrack.grid12 again
backtrack.grid12 → grid14: a3 guess 6 ∈ {1|6}
pending={a3}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowb. b6 is 6 by hidden-single.
pending={b6}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowh. h9 is 6 by hidden-single.
pending={h9}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowh. h4 is 7 by hidden-single.
pending={h4}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14.rowi. i1 is 6 by hidden-single.
pending={i1}
deduce.grid14: naked-singles
deduce.grid14: hidden-singles
deduce.grid14: naked-pairs
two's heap=c1 {1|3}, a4 {1|5}, b1 {1|7}, e2 {4|9}, a9 {1|5}, c8 {2|9}, e1 {2|7}, b8 {5|9}, h3 {8|9}.
grid14
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
| 6
|
| 3
| 4
| 7
| 8
|
|
| b
|
|
|
| 2
|
| 6
|
|
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
|
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
| 7
|
| 5
|
| 1
| 6
|
| i
| 6
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid14 → grid15: a4 guess 1 ∈ {1|5}
pending={a4}
deduce.grid15: naked-singles
- a9 is 5 by naked-single.
pending={a9}
- b8 is 9 by naked-single.
pending={b8}
- c8 is 2 by naked-single.
pending={c8}
deduce.grid15: hidden-singles
deduce.grid15.rowb. b5 is 5 by hidden-single.
pending={b5}
deduce.grid15: naked-singles
deduce.grid15: hidden-singles
deduce.grid15: naked-pairs
two's heap=c1 {1|3}, g8 {3|5}, b7 {1|4}, e1 {2|7}, b1 {1|7}, c9 {1|4}, d5 {2|4}, c4 {8|9}, e2 {4|9}, c6 {8|9}, e8 {6|7}, h3 {8|9}, i8 {5|7}.
Naked-pair {8|9} in cells {c4, c6, h3} contained within {rowc, box2}, updating cells {c1, c2, c9}:
grid15
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
| 6
| 1
| 3
| 4
| 7
| 8
| 5
|
| b
|
|
|
| 2
| 5
| 6
|
| 9
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
| 2
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
|
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
| 7
|
| 5
|
| 1
| 6
|
| i
| 6
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid15 → grid16: b1 guess 1 ∈ {1|7}
pending={b1}
deduce.grid16: naked-singles
- b7 is 4 by naked-single.
pending={b7}
- b2 is 8 by naked-single.
pending={b2}
- b3 is 7 by naked-single.
pending={b3}
- c1 is 3 by naked-single.
pending={c1}
- c2 is 4 by naked-single.
pending={c2}
- c9 is 1 by naked-single.
pending={c9}
- e2 is 9 by naked-single.
pending={e2}
- f3 is 1 by naked-single.
pending={f3}
- d2 is 5 by naked-single.
pending={d2}
- d3 is 4 by naked-single.
pending={d3}
- d4 is 6 by naked-single.
pending={d4}
- d5 is 2 by naked-single.
pending={d5}
- g1 is 5 by naked-single.
pending={g1}
- g8 is 3 by naked-single.
pending={g8}
- d8 is 7 by naked-single.
pending={d8}
- d6 is 3 by naked-single.
pending={d6}
- d7 is 1 by naked-single.
pending={d7}
- e8 is 6 by naked-single.
pending={e8}
- h2 is 3 by naked-single.
pending={h2}
- i2 is 1 by naked-single.
pending={i2}
- i8 is 5 by naked-single.
pending={i8}
deduce.grid16: hidden-singles
deduce.grid16.rowe. e4 is 4 by hidden-single.
pending={e4}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowf. f4 is 5 by hidden-single.
deduce.grid16.rowf. f7 is 3 by hidden-single.
pending={f4, f7}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowg. g6 is 1 by hidden-single.
deduce.grid16.rowg. g9 is 4 by hidden-single.
pending={g6, g9}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
deduce.grid16.rowg. g7 is 2 by hidden-single.
pending={g7}
deduce.grid16: naked-singles
deduce.grid16: hidden-singles
grid16 didn't work: rowh is not bijective.
…backtrack.grid15 again
backtrack.grid15 → grid17: b1 guess 7 ∈ {1|7}
pending={b1}
deduce.grid17: naked-singles
- e1 is 2 by naked-single.
pending={e1}
deduce.grid17: hidden-singles
deduce.grid17: naked-pairs
two's heap=c1 {1|3}, b7 {1|4}, d5 {2|4}, e8 {6|7}, c9 {1|4}, i8 {5|7}, e2 {4|9}, c6 {8|9}, e9 {7|8}, f1 {1|5}, g8 {3|5}, h3 {8|9}, c4 {8|9}.
Naked-pair {8|9} in cells {c4, c6, h3} contained within {rowc, box2}, updating cells {c1, c2, c9}:
grid17
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
| 6
| 1
| 3
| 4
| 7
| 8
| 5
|
| b
| 7
|
|
| 2
| 5
| 6
|
| 9
| 3
|
| c
|
|
| 5
|
| 7
|
| 6
| 2
|
|
| d
| 8
|
|
|
|
|
|
|
| 9
|
| e
| 2
|
| 3
|
| 1
|
| 5
|
|
|
| f
|
| 6
|
|
|
|
|
| 4
|
|
| g
|
| 7
|
|
| 6
|
|
|
|
|
| h
| 4
|
|
| 7
|
| 5
|
| 1
| 6
|
| i
| 6
|
| 2
| 3
|
|
|
|
|
|
backtrack.grid17 → grid18: b7 guess 1 ∈ {1|4}
pending={b7}
deduce.grid18: naked-singles
- c9 is 4 by naked-single.
pending={c9}
deduce.grid18: hidden-singles
deduce.grid18.col9. f9 is 1 by hidden-single.
pending={f9}
deduce.grid18: naked-singles
- f1 is 5 by naked-single.
pending={f1}
deduce.grid18: hidden-singles
deduce.grid18.rowd. d4 is 5 by hidden-single.
pending={d4}
deduce.grid18: naked-singles
deduce.grid18: hidden-singles
deduce.grid18.rowd. d8 is 6 by hidden-single.
pending={d8}
deduce.grid18: naked-singles
- e8 is 7 by naked-single.
pending={e8}
- e9 is 8 by naked-single.
pending={e9}
- e6 is 9 by naked-single.
pending={e6}
- c6 is 8 by naked-single.
pending={c6}
- c4 is 9 by naked-single.
pending={c4}
- e2 is 4 by naked-single.
pending={e2}
- b2 is 8 by naked-single.
pending={b2}
- b3 is 4 by naked-single.
pending={b3}
- d2 is 1 by naked-single.
pending={d2}
- c2 is 3 by naked-single.
pending={c2}
- c1 is 1 by naked-single.
pending={c1}
- d3 is 7 by naked-single.
pending={d3}
- e4 is 6 by naked-single.
pending={e4}
- f3 is 9 by naked-single.
pending={f3}
- f4 is 8 by naked-single.
pending={f4}
- f5 is 2 by naked-single.
pending={f5}
- d5 is 4 by naked-single.
pending={d5}
- d6 is 3 by naked-single.
pending={d6}
- d7 is 2 by naked-single.
pending={d7}
- f6 is 7 by naked-single.
pending={f6}
- f7 is 3 by naked-single.
pending={f7}
- g1 is 3 by naked-single.
pending={g1}
- g4 is 4 by naked-single.
pending={g4}
- g8 is 5 by naked-single.
pending={g8}
- g9 is 2 by naked-single.
pending={g9}
- g6 is 1 by naked-single.
pending={g6}
- g3 is 8 by naked-single.
pending={g3}
- g7 is 9 by naked-single.
pending={g7}
- h2 is 9 by naked-single.
pending={h2}
grid18 didn't work: naked-singles ran out of candidates.
…backtrack.grid17 again
backtrack.grid17 → grid19: b7 guess 4 ∈ {1|4}
pending={b7}
deduce.grid19: naked-singles
- c9 is 1 by naked-single.
pending={c9}
- c1 is 3 by naked-single.
pending={c1}
- c2 is 4 by naked-single.
pending={c2}
- e2 is 9 by naked-single.
pending={e2}
deduce.grid19: hidden-singles
deduce.grid19.rowe. e4 is 4 by hidden-single.
pending={e4}
deduce.grid19: naked-singles
- d5 is 2 by naked-single.
pending={d5}
deduce.grid19: hidden-singles
deduce.grid19.rowd. d3 is 4 by hidden-single.
pending={d3}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowe. e8 is 6 by hidden-single.
pending={e8}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowd. d4 is 6 by hidden-single.
pending={d4}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowd. d2 is 5 by hidden-single.
pending={d2}
deduce.grid19: naked-singles
- f1 is 1 by naked-single.
pending={f1}
- f3 is 7 by naked-single.
pending={f3}
- g1 is 5 by naked-single.
pending={g1}
- g8 is 3 by naked-single.
pending={g8}
- d8 is 7 by naked-single.
pending={d8}
- d6 is 3 by naked-single.
pending={d6}
- d7 is 1 by naked-single.
pending={d7}
- e9 is 8 by naked-single.
pending={e9}
- e6 is 7 by naked-single.
pending={e6}
- f9 is 2 by naked-single.
pending={f9}
- f7 is 3 by naked-single.
pending={f7}
- g9 is 4 by naked-single.
pending={g9}
- i8 is 5 by naked-single.
pending={i8}
- i9 is 7 by naked-single.
pending={i9}
deduce.grid19: hidden-singles
deduce.grid19.rowf. f4 is 5 by hidden-single.
pending={f4}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowh. h2 is 3 by hidden-single.
deduce.grid19.rowh. h7 is 2 by hidden-single.
pending={h2, h7}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowg. g6 is 2 by hidden-single.
pending={g6}
deduce.grid19: naked-singles
deduce.grid19: hidden-singles
deduce.grid19.rowg. g3 is 1 by hidden-single.
pending={g3}
deduce.grid19: naked-singles
- b3 is 8 by naked-single.
pending={b3}
- b2 is 1 by naked-single.
pending={b2}
- h3 is 9 by naked-single.
pending={h3}
- h5 is 8 by naked-single.
pending={h5}
- f5 is 9 by naked-single.
pending={f5}
- f6 is 8 by naked-single.
pending={f6}
- c6 is 9 by naked-single.
pending={c6}
- c4 is 8 by naked-single.
pending={c4}
- g4 is 9 by naked-single.
pending={g4}
- g7 is 8 by naked-single.
pending={g7}
- i2 is 8 by naked-single.
pending={i2}
- i5 is 4 by naked-single.
pending={i5}
- i6 is 1 by naked-single.
pending={i6}
- i7 is 9 by naked-single.
pending={i7}
deduce.grid19. Solved.
grid19
|
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
|
| a
| 9
| 2
| 6
| 1
| 3
| 4
| 7
| 8
| 5
|
| b
| 7
| 1
| 8
| 2
| 5
| 6
| 4
| 9
| 3
|
| c
| 3
| 4
| 5
| 8
| 7
| 9
| 6
| 2
| 1
|
| d
| 8
| 5
| 4
| 6
| 2
| 3
| 1
| 7
| 9
|
| e
| 2
| 9
| 3
| 4
| 1
| 7
| 5
| 6
| 8
|
| f
| 1
| 6
| 7
| 5
| 9
| 8
| 3
| 4
| 2
|
| g
| 5
| 7
| 1
| 9
| 6
| 2
| 8
| 3
| 4
|
| h
| 4
| 3
| 9
| 7
| 8
| 5
| 2
| 1
| 6
|
| i
| 6
| 8
| 2
| 3
| 4
| 1
| 9
| 5
| 7
|
grid19. Copying solution to raw grid.